Wireless communication networks use some variant of Automatic Repeat ReQuest (ARQ), also known as Automatic Repeat Query, as an error-control method for data transmissions. The method relies upon packet retransmissions to achieve a desired quality of service.
Specifically, a network node may be configured to achieve desired error rates. For example, a network node may be set to transmit data packets at an error rate of 1%. As a result, packet transmissions will be expected to fail only 1% of the time. As another example, a network node may be set to transmit data packets at an error rate of 10%, and data packet transmissions will be expected to fail approximately 10% of the time. The network node may be configurable such that the modulation, coding, power, and bandwidth of data transmissions may be selected to achieve the desired error rate. When the user equipment or other wireless device receives an error-free packet, the wireless device transmits a positive acknowledgement message (ACK) to the transmitting network node that identifies the data frame or packet that was correctly received. Conversely, when the user equipment does not receive an error-free packet, the wireless device transmits a negative acknowledgement message (NAK) that identifies that the packet or frame was not properly received.
Upon receipt of a NAK message, the network node re-sends the first packet again. The receiving wireless device then processes the first and second transmissions together to boost its performance. If there still is a packet error after the first and second transmissions, the receiver sends a NAK again, and the network node re-sends the packet a third time. With each retransmission, the overall failure rate goes down. The ARQ process may be repeated as necessary but is typically terminated after a set number of re-transmissions. For example, the ARQ process may be terminated after two or three retransmissions. In the unlikely event that the packet is still in error, a higher level procedure may kick in to decide whether to reinitiate the transmission from the beginning or give up on the packet.
There are many variants to this basic idea. For instance, the second transmission may not be a repetition of the first packet. Instead, the second and subsequent transmissions may include complementary information, such as additional coded bits from encoding the same information. This type of scheme may be called a rateless code. It is considered rateless because the rate of the code is not known in advance and is instead determined by the successful reception of the packet. Additionally, the network node may continue transmitting packets representing the same information until it is told to stop by feedback from the receiver.
While the techniques described above may be used to achieve a desired quality of service in the wireless network, such techniques are not without drawbacks. Specifically, packet failures are unpredictable events. Accordingly, it is not possible to plan for their occurrence. Likewise, it is not possible to plan for the corresponding packet retransmissions after a failure is detected. This makes the handling of packets retransmissions difficult. Further, while a network node is in the process of retransmitting prior data transmission, any other data transmissions are put on hold. The resulting unpredictable delays also affect user experience.